Serveur d'exploration autour du libre accès en Belgique

Attention, ce site est en cours de développement !
Attention, site généré par des moyens informatiques à partir de corpus bruts.
Les informations ne sont donc pas validées.

Dispersing Proprietary Applications as Benchmarks through Code Mutation

Identifieur interne : 001425 ( Main/Exploration ); précédent : 001424; suivant : 001426

Dispersing Proprietary Applications as Benchmarks through Code Mutation

Auteurs : Luk Van Ertvelde [Belgique] ; Lieven Eeckhout [Belgique]

Source :

RBID : Pascal:08-0302886

Descripteurs français

English descriptors

Abstract

Industry vendors hesitate to disseminate proprietary applications to academia and third party vendors. By consequence, the bench-marking process is typically driven by standardized, open-source benchmarks which may be very different from and likely not representative of the real-life applications of interest. This paper proposes code mutation, a novel technique that mutates a proprietary application to complicate reverse engineering so that it can be distributed as a benchmark. The benchmark mutant then serves as a proxy for the proprietary application. The key idea in the proposed code mutation approach is to preserve the proprietary application's dynamic memory access and/or control flow behavior in the benchmark mutant while mutating the rest of the application code. To this end, we compute program slices for memory access operations and/or control flow operations trimmed through constant value and branch profiles; and subsequently mutate the instructions not appearing in these slices through binary rewriting. Our experimental results using SPEC CPU2000 and MiBench benchmarks show that code mutation is a promising technique that mutates up to 90% of the static binary, up to 50% of the dynamically executed instructions, and up to 35% of the at run time exposed inter-operation data dependencies. The performance characteristics of the mutant are very similar to those of the proprietary application across a wide range of microarchitectures and hardware implementations.


Affiliations:


Links toward previous steps (curation, corpus...)


Le document en format XML

<record>
<TEI>
<teiHeader>
<fileDesc>
<titleStmt>
<title xml:lang="en" level="a">Dispersing Proprietary Applications as Benchmarks through Code Mutation</title>
<author>
<name sortKey="Van Ertvelde, Luk" sort="Van Ertvelde, Luk" uniqKey="Van Ertvelde L" first="Luk" last="Van Ertvelde">Luk Van Ertvelde</name>
<affiliation wicri:level="3">
<inist:fA14 i1="01">
<s1>Department of Electronics and Information Systems (ELIS), Ghent University St.-Pietersnieuwstraat 41</s1>
<s2>9000 Gent</s2>
<s3>BEL</s3>
<sZ>1 aut.</sZ>
<sZ>2 aut.</sZ>
</inist:fA14>
<country>Belgique</country>
<placeName>
<region type="province" nuts="2">Province de Flandre-Orientale</region>
<settlement type="city">Gand</settlement>
</placeName>
</affiliation>
</author>
<author>
<name sortKey="Eeckhout, Lieven" sort="Eeckhout, Lieven" uniqKey="Eeckhout L" first="Lieven" last="Eeckhout">Lieven Eeckhout</name>
<affiliation wicri:level="3">
<inist:fA14 i1="01">
<s1>Department of Electronics and Information Systems (ELIS), Ghent University St.-Pietersnieuwstraat 41</s1>
<s2>9000 Gent</s2>
<s3>BEL</s3>
<sZ>1 aut.</sZ>
<sZ>2 aut.</sZ>
</inist:fA14>
<country>Belgique</country>
<placeName>
<region type="province" nuts="2">Province de Flandre-Orientale</region>
<settlement type="city">Gand</settlement>
</placeName>
</affiliation>
</author>
</titleStmt>
<publicationStmt>
<idno type="wicri:source">INIST</idno>
<idno type="inist">08-0302886</idno>
<date when="2008">2008</date>
<idno type="stanalyst">PASCAL 08-0302886 INIST</idno>
<idno type="RBID">Pascal:08-0302886</idno>
<idno type="wicri:Area/PascalFrancis/Corpus">000079</idno>
<idno type="wicri:Area/PascalFrancis/Curation">000070</idno>
<idno type="wicri:Area/PascalFrancis/Checkpoint">000064</idno>
<idno type="wicri:doubleKey">1523-2867:2008:Van Ertvelde L:dispersing:proprietary:applications</idno>
<idno type="wicri:Area/Main/Merge">001429</idno>
<idno type="wicri:Area/Main/Curation">001425</idno>
<idno type="wicri:Area/Main/Exploration">001425</idno>
</publicationStmt>
<sourceDesc>
<biblStruct>
<analytic>
<title xml:lang="en" level="a">Dispersing Proprietary Applications as Benchmarks through Code Mutation</title>
<author>
<name sortKey="Van Ertvelde, Luk" sort="Van Ertvelde, Luk" uniqKey="Van Ertvelde L" first="Luk" last="Van Ertvelde">Luk Van Ertvelde</name>
<affiliation wicri:level="3">
<inist:fA14 i1="01">
<s1>Department of Electronics and Information Systems (ELIS), Ghent University St.-Pietersnieuwstraat 41</s1>
<s2>9000 Gent</s2>
<s3>BEL</s3>
<sZ>1 aut.</sZ>
<sZ>2 aut.</sZ>
</inist:fA14>
<country>Belgique</country>
<placeName>
<region type="province" nuts="2">Province de Flandre-Orientale</region>
<settlement type="city">Gand</settlement>
</placeName>
</affiliation>
</author>
<author>
<name sortKey="Eeckhout, Lieven" sort="Eeckhout, Lieven" uniqKey="Eeckhout L" first="Lieven" last="Eeckhout">Lieven Eeckhout</name>
<affiliation wicri:level="3">
<inist:fA14 i1="01">
<s1>Department of Electronics and Information Systems (ELIS), Ghent University St.-Pietersnieuwstraat 41</s1>
<s2>9000 Gent</s2>
<s3>BEL</s3>
<sZ>1 aut.</sZ>
<sZ>2 aut.</sZ>
</inist:fA14>
<country>Belgique</country>
<placeName>
<region type="province" nuts="2">Province de Flandre-Orientale</region>
<settlement type="city">Gand</settlement>
</placeName>
</affiliation>
</author>
</analytic>
<series>
<title level="j" type="main">ACM SIGPLAN notices</title>
<title level="j" type="abbreviated">ACM SIGPLAN not.</title>
<idno type="ISSN">1523-2867</idno>
<imprint>
<date when="2008">2008</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
<seriesStmt>
<title level="j" type="main">ACM SIGPLAN notices</title>
<title level="j" type="abbreviated">ACM SIGPLAN not.</title>
<idno type="ISSN">1523-2867</idno>
</seriesStmt>
</fileDesc>
<profileDesc>
<textClass>
<keywords scheme="KwdEn" xml:lang="en">
<term>Access control</term>
<term>Branching</term>
<term>Computer security</term>
<term>Computer server</term>
<term>Data dependency</term>
<term>Hypermedia</term>
<term>Microarchitecture</term>
<term>Open source software</term>
<term>Performance characteristic</term>
<term>Performance evaluation</term>
<term>Programming language</term>
<term>Reverse engineering</term>
<term>Rewriting</term>
<term>Software architecture</term>
<term>Storage access</term>
<term>Storage management</term>
</keywords>
<keywords scheme="Pascal" xml:lang="fr">
<term>Langage programmation</term>
<term>Logiciel libre</term>
<term>Serveur informatique</term>
<term>Accès mémoire</term>
<term>Sécurité informatique</term>
<term>Hypermédia</term>
<term>Gestion mémoire</term>
<term>Evaluation performance</term>
<term>Rétroingénierie</term>
<term>Contrôle accès</term>
<term>Architecture logiciel</term>
<term>Ramification</term>
<term>Réécriture</term>
<term>Dépendance donnée</term>
<term>Caractéristique fonctionnement</term>
<term>Microarchitecture</term>
</keywords>
<keywords scheme="Wicri" type="topic" xml:lang="fr">
<term>Langage de programmation</term>
<term>Hypermédia</term>
</keywords>
</textClass>
</profileDesc>
</teiHeader>
<front>
<div type="abstract" xml:lang="en">Industry vendors hesitate to disseminate proprietary applications to academia and third party vendors. By consequence, the bench-marking process is typically driven by standardized, open-source benchmarks which may be very different from and likely not representative of the real-life applications of interest. This paper proposes code mutation, a novel technique that mutates a proprietary application to complicate reverse engineering so that it can be distributed as a benchmark. The benchmark mutant then serves as a proxy for the proprietary application. The key idea in the proposed code mutation approach is to preserve the proprietary application's dynamic memory access and/or control flow behavior in the benchmark mutant while mutating the rest of the application code. To this end, we compute program slices for memory access operations and/or control flow operations trimmed through constant value and branch profiles; and subsequently mutate the instructions not appearing in these slices through binary rewriting. Our experimental results using SPEC CPU2000 and MiBench benchmarks show that code mutation is a promising technique that mutates up to 90% of the static binary, up to 50% of the dynamically executed instructions, and up to 35% of the at run time exposed inter-operation data dependencies. The performance characteristics of the mutant are very similar to those of the proprietary application across a wide range of microarchitectures and hardware implementations.</div>
</front>
</TEI>
<affiliations>
<list>
<country>
<li>Belgique</li>
</country>
<region>
<li>Province de Flandre-Orientale</li>
</region>
<settlement>
<li>Gand</li>
</settlement>
</list>
<tree>
<country name="Belgique">
<region name="Province de Flandre-Orientale">
<name sortKey="Van Ertvelde, Luk" sort="Van Ertvelde, Luk" uniqKey="Van Ertvelde L" first="Luk" last="Van Ertvelde">Luk Van Ertvelde</name>
</region>
<name sortKey="Eeckhout, Lieven" sort="Eeckhout, Lieven" uniqKey="Eeckhout L" first="Lieven" last="Eeckhout">Lieven Eeckhout</name>
</country>
</tree>
</affiliations>
</record>

Pour manipuler ce document sous Unix (Dilib)

EXPLOR_STEP=$WICRI_ROOT/Wicri/Belgique/explor/OpenAccessBelV2/Data/Main/Exploration
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 001425 | SxmlIndent | more

Ou

HfdSelect -h $EXPLOR_AREA/Data/Main/Exploration/biblio.hfd -nk 001425 | SxmlIndent | more

Pour mettre un lien sur cette page dans le réseau Wicri

{{Explor lien
   |wiki=    Wicri/Belgique
   |area=    OpenAccessBelV2
   |flux=    Main
   |étape=   Exploration
   |type=    RBID
   |clé=     Pascal:08-0302886
   |texte=   Dispersing Proprietary Applications as Benchmarks through Code Mutation
}}

Wicri

This area was generated with Dilib version V0.6.25.
Data generation: Thu Dec 1 00:43:49 2016. Site generation: Wed Mar 6 14:51:30 2024